package com.stars.easyms.mq.dao;

import com.stars.easyms.mq.dto.MQMessageDTO;

import java.util.List;
import java.util.Map;

/**
 * MQ消息发送/接收信息DAO
 *
 * @author guoguifang
 * @date 2018-04-23 13:54
 * @since 1.0.0
 */
public interface MQMessageDAO {

    /**
     * 根据查询条件查询MQ消息
     * @param paramMap 查询条件
     * @return
     */
    List<MQMessageDTO> getMQMessage(Map<String, Object> paramMap);

    /**
     * 插入一条MQ封装消息到数据库
     * @param mqMessageDTO MQ封装消息
     * @return
     */
    int insertMQMessage(MQMessageDTO mqMessageDTO);

    /**
     * 根据主键修改MQ封装消息
     * @param mqMessageDTO MQ封装消息
     * @return
     */
    int updateMQMessageByPrimaryKey(MQMessageDTO mqMessageDTO);

    /**
     * 获取MQ封装消息总数量
     * @param paramMap 查询条件
     * @return
     */
    Long getMQMessageCount(Map<String, Object> paramMap);

    /**
     * 获取MQ封装消息
     * @param paramMap 查询条件
     * @return
     */
    List<MQMessageDTO> getMQMessageForFailRetry(Map<String, Object> paramMap);

    /**
     * 插入一条历史MQ封装消息
     * @param paramMap 历史MQ封装查询参数
     * @return
     */
    int insertMQMessageOldData(Map<String, Object> paramMap);

    /**
     * 删除一条历史MQ封装消息
     * @param paramMap 历史MQ封装查询参数
     * @return
     */
    int deleteMQMessageOldData(Map<String, Object> paramMap);
}
